From: Adel Gadllah Date: Fri, 5 Oct 2012 08:00:32 +0000 (+0200) Subject: gdm: Try harder to move focus to the first user X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~1013^2^2~5657 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=3ed5f9cd15e5535b5fa17b0f5e6977f351dddda6;p=gnome-shell.git gdm: Try harder to move focus to the first user _moveFocusToItems seems to be called to early causing clutter_actor_grab_key_focus not to be called. So queue another attempt with BEFORE_REDRAW priority when this happens to make sure we actually move the focus sucessfully. https://bugzilla.gnome.org/show_bug.cgi?id=684650 --- diff --git a/js/gdm/loginDialog.js b/js/gdm/loginDialog.js index 404cae75b..3575ca274 100644 --- a/js/gdm/loginDialog.js +++ b/js/gdm/loginDialog.js @@ -25,6 +25,7 @@ const Gio = imports.gi.Gio; const GLib = imports.gi.GLib; const Gtk = imports.gi.Gtk; const Mainloop = imports.mainloop; +const Meta = imports.gi.Meta; const Lang = imports.lang; const Pango = imports.gi.Pango; const Signals = imports.signals; @@ -207,7 +208,13 @@ const UserList = new Lang.Class({ if (global.stage.get_key_focus() != this.actor) return; - this.actor.navigate_focus(null, Gtk.DirectionType.TAB_FORWARD, false); + let focusSet = this.actor.navigate_focus(null, Gtk.DirectionType.TAB_FORWARD, false); + if (!focusSet) { + Meta.later_add(Meta.LaterType.BEFORE_REDRAW, Lang.bind(this, function() { + this._moveFocusToItems(); + return false; + })); + } }, _showItem: function(item) {